package com.foodchain.annotation;

import com.foodchain.aspect.RegisterValid;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/*
* @Retention:
*   RetentionPolicy.SOURCE： 注解仅存于源码中,在class文件中不存在
*   RetentionPolicy.CLASS：  注解在class文件中存在,但运行时无法获取
*   RetentionPolicy.RUNTIME：注解在class文件中存在,运行时通过反射获取
* @Target:
*   ElementType.PACKAGE：包
*   ElementType.METHOD：方法
*   ElementType.PARAMETER：方法参数
*   ElementType.CONSTRUCTOR：构造函数
*   ElementType.ANNOTATION_TYPE：注解
*   ElementType.FIELD：字段、枚举的常量
*   ElementType.LOCAL_VARIABLE：局部变量
*   ElementType.TYPE：接口、类、枚举、注解
* @Document：说明该注解将被包含在javadoc中
* @Inherited：说明子类可以继承父类中的该注解
* */
@Inherited
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = RegisterValid.class)
public @interface CheckRegister {

    /*String userName();

    String passWord();

    String reviewPassWord();*/

    String message() default "Age Must Be Odd";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}
